From d60f89487ab3bc2390054efcd5d986a4aadd4291 Mon Sep 17 00:00:00 2001 From: Linnnus Date: Tue, 18 Feb 2025 18:01:09 +0100 Subject: =?UTF-8?q?Tilf=C3=B8j=20opgaver=20(assignments)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assignments/[assignmentId]/+page.server.ts | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/src/routes/assignments/[assignmentId]/+page.server.ts (limited to 'app/src/routes/assignments/[assignmentId]/+page.server.ts') diff --git a/app/src/routes/assignments/[assignmentId]/+page.server.ts b/app/src/routes/assignments/[assignmentId]/+page.server.ts new file mode 100644 index 0000000..566dcd9 --- /dev/null +++ b/app/src/routes/assignments/[assignmentId]/+page.server.ts @@ -0,0 +1,27 @@ +import { getAssignmentAndCemetaryById } from "$lib/server/assignments"; +import type { PageServerLoad } from "./$types"; +import { error, redirect } from "@sveltejs/kit"; + +export const load = (async ({ params, url, locals }) => { + if (!locals.user) { + redirect(303, `/login?redirectTo=${encodeURIComponent(url.toString())}`); + } + + const { assignment, cemetaryPlot } = await getAssignmentAndCemetaryById( + locals.dbConn, + +params.assignmentId, + ); + if (!assignment) { + return error(404, `Cemetary plot with id ${params.assignmentId} not found`); + } + console.debug("Found assignment: ", assignment); + if (assignment.gardenerId !== locals.user.id) { + return error(403, "This assignment isn't for you!"); + } + + return { + user: locals.user, + assignment, + cemetaryPlot, + }; +}) satisfies PageServerLoad; -- cgit v1.2.3